Constraint-Based Invariant Inference over Predicate Abstraction
نویسندگان
چکیده
This paper describes a constraint-based invariant generation technique for proving the validity of safety assertions over the domain of predicate abstraction in an interprocedural setting. The key idea of the technique is to represent each invariant in bounded DNF form by means of boolean indicator variables, one for each predicate p and each disjunct d denoting whether p is present in d or not. The verification condition of the program is then encoded by means of a boolean formula over these boolean indicator variables such that any satisfying assignment to the formula yields the inductive invariants for proving the validity of given program assertions. This paper also describes how to use the constraint-based methodology for generating weakest preconditions for safety assertions. An interesting application of weakest precondition generation is to produce mostgeneral counterexamples for safety assertions. We also present preliminary experimental evidence demonstrating the feasibility of this technique.
منابع مشابه
Software Model Checking via Iterative Abstraction Refinement of Constraint Logic Queries
Existing predicate abstraction tools rely on both theorem provers (to abstract the original program) and model checkers (to check the abstract program). This paper combines these theorem proving and model checking components in a unified algorithm. The correctness of the original, infinite-state program is expressed as a single query in constraint logic, which is sufficiently expressive to enco...
متن کاملPredicate Generation for Learning-Based Quantifier-Free Loop Invariant Inference
We address the predicate generation problem in the context of loop invariant inference. Motivated by the interpolation-based abstraction refinement technique, we apply the interpolation theorem to synthesize predicates implicitly implied by program texts. Our technique is able to improve the effectiveness and efficiency of the learning-based loop invariant inference algorithm in [14]. Experimen...
متن کاملPredicate Abstraction for Linked Data Structures
We present Alias Refinement Types (Art), a new approach to the verification of correctness properties of linked data structures. While there are many techniques for checking that a heap-manipulating program adheres to its specification, they often require that the programmer annotate the behavior of each procedure, for example, in the form of loop invariants and preand post-conditions. Predicat...
متن کاملProbabilistic Program Inference With Abstractions
ion is a fundamental tool in the analysis and verification of programs. Typically, a program abstraction selectively models particular aspects of the original program while utilizing non-determinism to conservatively account for other behaviors [2]. However, non-deterministic abstractions do not directly apply to the analysis of probabilistic programs. We recently introduced probabilistic progr...
متن کاملInfinite-state invariant checking with IC3 and predicate abstraction
We address the problem of verifying invariant properties on infinitestate systems. We present a novel approach, IC3ia, for generalizing the IC3 invariant checking algorithm from finite-state to infinite-state transition systems, expressed over some background theories. The procedure is based on a tight integration of IC3 with Implicit Abstraction, a form of predicate abstraction that expresses ...
متن کامل